﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Service.Validation.BusinessRules;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessLogic.BusinessRuleValidation
{
    /// <summary>
    /// Validacao
    /// </summary>
    public class ValidacaoExistenciaFaixaCorretagem : BaseBusinessRuleValidation<BusinessEntity.FaixaCorretagem>, IBusinessRuleValidation
    {
        #region Constantes
        private const int ErroObjetoNulo = 109466;
        private const int ErroFaixaCorretagemExistente = 109467;
        #endregion
        #region IBusinessRuleValidation Members

        /// <summary>
        /// Retorna a lista de erros
        /// </summary>
        /// <returns></returns>
        public List<Sinacor.Infra.Common.Validation.ValidationError> GetErrors()
        {
            return base.ErrorsList;
        }


        /// <summary>
        /// Validacao
        /// </summary>
        public void Validate()
        {


            if( base.EntityToValidate == null)
               base.AddValidationError( ErroObjetoNulo );
            else
            {

                  BusinessEntity.Parameter.FiltroFaixaCorretagemChave filtroChave = new  BusinessEntity.Parameter.FiltroFaixaCorretagemChave();

                  filtroChave.DataInicial = base.EntityToValidate.DataInicial;
                  filtroChave.NumeroFaixa = base.EntityToValidate.NumeroFaixa;

                  BusinessEntity.FaixaCorretagem faixaCorretagem = new ResourceAccess.FaixaCorretagem().ObterFaixaCorretagem(filtroChave);



                  if (faixaCorretagem != null)
                      base.AddValidationError(ErroFaixaCorretagemExistente);

            }


        }

        #endregion
    }
}
